<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use DB;
use Config;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Requests\InsertConfigRequest;

class ConfigController extends Controller
{
    /**
	*	网站配置添加模块
	*	/admin/config/add
    */
    public function getAdd() {

    	//加载模板
    	return view('config.add');
    }

    /**
	*	网站配置执行添加模块
	*	/admin/config/insert
    */
    public function postInsert(InsertConfigRequest $request) {

    	// 调用函数
    	$data = $this -> dealData($request);

    	// 数据处理
    	$res = DB::table('config') -> insert($data);
    	
    	// 判断
    	if($res) {
    		return redirect('/admin/config/index') -> with('success','添加成功');
    	} else {
    		return back() -> with('error','添加失败');
    	}
    }

    public function dealData($request){
    	
    	// 取出隐藏域字段
    	$data = $request -> except(['_token']);

    	// 检查是否有文件上传
    	if ($request->hasFile('logo')) {
    		do {
	    		// 获取文件的后缀名
	    		$suffix = $request->file('logo')->getClientOriginalExtension();

	    		// 获取文件名
	    		$picname = md5(time()+rand(0,999));
	    		$path = $picname.'.'.$suffix; 
	    		// dd($path);
	    	} while(file_exists('./upload/'.$path));

	    	// 将临时文件中的图片移动到指定文件夹中
	    	// Config::get('app.upload_path') 读取配置中的图片路径
	    	$request->file('logo')->move('./upload/',$path);
	    	$data['logo'] = trim('./upload/'.$path,'.');

    	}

    	return $data;
    	// dd($data);
    }

    /**
	*	网站配置浏览模块
	*	/admin/config/index
    */
    public function getIndex() {

    	// 查询所有的数据
    	$data = DB::table('config')->get();
    
    	// 加载模板
    	return view('config.index',['list' => $data]);
    } 

    /**
	*	网站配置删除
	*	/admin/config/delete
    */
    public function getDelete($id) {

            // 删除图片
            $this -> delpic($id);
            // 删除数据
    	   $res = DB::table('config')->where('id','=',$id)->delete();

    	// 判断是否删除成功
    	if($res) {
    		return redirect('/admin/config/index')->with('success','删除成功');
    	}else {
    		return back()->with('error','删除失败');
    	}
    }

    /**
	*	网站配置修改页面
	*	/admin/config/edit
    */
    public function getEdit($id) {

    	// 查询数据
    	$res = DB::table('config') -> where('id',$id) -> first();

    	// 加载模板
    	return view('config.edit',['vo' => $res]);
    }

    /**
	*	网站配置执行修改
	*	/admin/config/update
    */
    public function postUpdate(InsertConfigRequest $request) {

        // 删除图片
        if($request -> hasFile('logo')) {
            $this -> delpic($request -> input('id'));
        }
    	// 数据处理
    	$data = $this -> dealData($request);

        // 删除id
        unset($data['id']);
    
    	$res = DB::table('config') -> where('id','=',$request->input('id'))->update($data);
        
    	// 判断是否修改成功
    	if ($res) {
    		return  redirect('/admin/config/index') -> with('success','修改成功');
    	}else {
    		return back() -> with('error','修改失败');
    	}
    }

    // 删除图片
    public function delpic($id) {

        // 查询删除的数据
            $data = DB::table('config') -> where('id',$id) -> first();
            
            // 删除图片
            $logoPath = '.'.$data['logo'];
            if(file_exists($logoPath)) {
                unlink($logoPath);
            }
    }
}
